﻿#include "TestModule.h"

#ifdef _DEBUG
#include <fast_io/fast_io_device.h>

#include "../../../Utils/DrawUtils.h"

SettingEnum test_TestModule{{{{u8"test 1", u8"测试1", u8"測試1", u8"テスト1"}, {u8"annotation 1", u8"注释1", u8"注釋1", u8"コメント1"}},
							 {{u8"test 2", u8"测试2", u8"測試2", u8"テスト2"}, {u8"annotation 2", u8"注释2", u8"注釋2", u8"コメント1"}}}};

SettingEnum test2_TestModule{{{{u8"test 3", u8"测试3", u8"測試3", u8"テスト3"}, {u8"annotation 3", u8"注释3", u8"注釋3", u8"コメント3"}},
							  {{u8"test 4", u8"测试4", u8"測試4", u8"テスト4"}, {u8"annotation 4", u8"注释4", u8"注釋4", u8"コメント4"}},
							  {{u8"test 5", u8"测试5", u8"測試5", u8"テスト5"}, {u8"annotation 5", u8"注释5", u8"注釋5", u8"コメント5"}}}};

float test3_TestModuel{};
int test4_TestModuel{};
bool test5_TestModuel{};
//                    vector|     array|

void init_TestModule(IModule* i) {
}

void onEnable_TestModule() {
}

void onDisable_TestModule() {
}

void onWorldTick_TestModule(C_GameMode*) {
}

void onTick_TestModule(C_GameMode* gm) {
	// if (GameData::canUseMoveKeys()) {
	//	C_GameSettingsInput* input = GameData::getClientInstance()->getGameSettingsInput();

	//	GameData::getClientInstance()->getMoveTurnInput()->isSneakDown = true;
	//
	//}
}

void onAttack_TestModule(C_Entity*) {
}

void onPreRender_TestModule(C_MinecraftUIRenderContext* c) {
	DrawUtils::setColor(1.f, 1.f, 1.f, 1.f);
	DrawUtils::drawLine(vec2_t{10,5}, vec2_t{100,55}, 1.f);
}

void onPostRender_TestModule(C_MinecraftUIRenderContext* c) {
}

void onLevelRender_TestModule() {
}

void onMove_TestModule(C_MoveInputHandler*) {
}

void onSendPacket_TestModule(C_Packet*, bool&) {
}

void onPlayerTick_TestModule(C_Player*) {
}

void onGetPickRange_TestModule() {
}

void onUpdate_TestModule() {
}

IModule TestModule{
	Category::CLIENT,
	{u8"TestModule", u8"测试模块", u8"測試模塊", u8"テストモジュール"},
	{u8"Commissioning test", u8"调试测试", u8"調試測試", u8"デバッグテスト"},
	0,  // keybind
	{SettingEntry{
		 {u8"test enum", u8"测试enum", u8"測試enum", u8"テストenum"},
		 &test_TestModule,
		 0,
		 {u8"test enum annotation", u8"测试 enum 注释", u8"測試 enum 注釋", u8"テスト enum コメント"}},
	 SettingEntry{
		 {u8"test enumval2", u8"测试enumval2", u8"測試enumval2", u8"テストenumval2"},
		 &test2_TestModule,
		 1,
		 {u8"test enum2 annotation", u8"测试 enum2 注释", u8"測試enum2 注釋", u8"テスト enum2 コメント"}},
	 SettingEntry{
		 {u8"test float", u8"测试float", u8"測試float", u8"テストfloat"},
		 &test3_TestModuel,
		 5.f,
		 0.f,
		 10.f,
		 {u8"test float annotation", u8"测试 float 注释", u8"測試float 注釋", u8"テスト float コメント"}},
	 SettingEntry{
		 {u8"test int", u8"测试int", u8"測試int", u8"テストint"},
		 &test4_TestModuel,
		 5,
		 0,
		 10,
		 {u8"test int annotation", u8"测试 int 注释", u8"測試int 注釋", u8"テスト int コメント"}},
	 SettingEntry{
		 {u8"test bool", u8"测试bool", u8"測試bool", u8"テストbool"},
		 &test5_TestModuel,
		 test5_TestModuel,
		 {u8"test bool annotation", u8"测试 bool 注释", u8"測試bool 注釋", u8"テスト bool コメント"}}},
	init_TestModule,
	onEnable_TestModule,
	onDisable_TestModule,
	onWorldTick_TestModule,
	onTick_TestModule,
	nullptr,
	onAttack_TestModule,
	onPreRender_TestModule,
	onPostRender_TestModule,
	onLevelRender_TestModule,
	onMove_TestModule,
	onSendPacket_TestModule,
	onPlayerTick_TestModule,
	onGetPickRange_TestModule,
	onUpdate_TestModule};

#endif  // _DEBUG


